package com.zzl.myblog.Utils;

import com.zzl.myblog.Bean.ViewBean.blog;

import org.litepal.crud.DataSupport;
import org.litepal.tablemanager.Connector;

import java.util.List;

/**
 * SQLite 数据库
 * －　插入
 * －　删除
 * －　查询所有博客数据
 * －　（暂无修改）
 */
public class SqliteUtils {
    private static String TAG = "SqliteUtils";
    private static SqliteUtils sqliteUtils;

    // 获取唯一可用的对象，防止创建多次数据库
    public static SqliteUtils getInstance() {
        return sqliteUtils = new SqliteUtils();
    }

    //将构造函数私有 用于实现单例 使得外部无法使用构造函数实例化
    private SqliteUtils() {
        Connector.getDatabase(); // 创建数据库
    }

    /*
     * 插入博客地址
     * 参数： Obj
     */
    public static String saveBlogURL(blog blog){
        try{
            blog.save();
            return "保存成功";
        }catch(Exception e){
            return "保存失败！";
        }
    }

    /*
        添加新的博客地址
     */
    public static String updateBlogURL(blog blog){
        try{
            blog.updateAll("username=?",blog.getUsername());
            return  "更新成功！";
        }catch (Exception e){
            return "更新失败！"+e.getMessage();
        }
    }

    /*
        修改当前用户名
     */
    public static void updateUsername(blog blog,String oldUsername){
        try{
            blog.updateAll("username=?",oldUsername);
        }catch (Exception e){
            LogUtil.i(TAG,e.getMessage());
        }
    }

    /**
     * 查询某个用户的博客记录
     * 参数：无
     */
    public static List<blog> queryUser(String username){
        try{
            List<blog> blog = DataSupport.where("username = ?",username).find(blog.class);
            return blog;
        }catch(Exception e){
            return null;
        }
    }

    /**
     * 删除blog表内所有博客记录
     * 补充：如果需要仅删除当前user的博客记录的需求，再进行修改
     */
    public static String clearAll(){
        try {
            DataSupport.deleteAll(blog.class);
            return "缓存已清！";
        }catch (Exception e) {
            return "清除失败！"+e.getMessage();
        }
    }
}
